package com.sunny.hp.common.util;

import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Random;

/**
 * 클래스설명 :
 * @version : 2013. 1. 9.
 * @author : yongchoen,Shin
 * @분류 :
 * eduterm / package com.comas.util;
 */

/**
 * 1. ClassName	:
 * 2. FileName		: UtilHelper.java
 * 3. Package		: com.comas.util
 * 4. Commnet		:
 * 5. 작성자			: yongcheon,Shin
 * 6. 작성일			: 2013. 1.9. 오후 3:38:01
 */
public class UtilHelper {
    /**
     * 1. MethodName	: fillLeft
     * 2. ClassName		: UtilHelper
     * 3. Commnet		: 입력된 문자열의 왼쪽에 index의 길이만큼 문자열을 붙여 반환한다.
     * 4. 작성자			: yongcheon,Shin
     * 5. 작성일			: 2013. 1.9. 오후 3:38:40
     * @return String 추가된 문자열
     * @param str 문자열
     * @param index 문자열이 붙여진 후 최종 문자열의 길이
     * @param addStr 추가하여 붙일 문자
     * @return
     */
    public String fillLeft(String str, int index, String addStr) {
        int gap = 0;
        if ((str!=null) && (addStr!=null) && (str.length()<=index)) {
            gap = index - str.length();

            for(int i=0 ; i<gap ; i++) {
                str = addStr + str;
            }
        }
        else {
            //System.out.println("[UtilHelper] fillLeft() : [[Warnning]] Input data is null.");
        }

        return str;
    }


    /**
     * 1. MethodName	: strRandom
     * 2. ClassName		: UtilHelper
     * 3. Commnet		: A ~ Z 까지 랜덤하게 문자열 생성
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 9. 오후 5:15:47
     * @return String
     * @param nMaxLength : 문자갯수
     * @return
     */
    public String strRandom( int nMaxLength )
    {
        Random ran = new Random();
        String stPassword = "";
        String stTemp = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

        int STR_MAX_LENGTH = nMaxLength;	// 자릿수
        int nTi = 0;

        for( nTi = 0; nTi < STR_MAX_LENGTH ; nTi++ )
        {
            stPassword +=  stTemp.charAt( ran.nextInt( stTemp.length() ) );
        }

        return stPassword;
    }


    /**
     * 1. MethodName	: getInt
     * 2. ClassName		: UtilHelper
     * 3. Commnet		: 숫자형으로 변환, Null이거나 0이면 기본값 세팅
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 8. 오전 10:26:17
     * @return int
     * @param str
     * @return
     */
    public int getInt(Object obj, int defNum){
        if(obj == null || obj.toString().equals("")) {
            return defNum;
        } else {
            if (Integer.parseInt(obj.toString()) <= 0){
                return defNum;
            } else {
                return Integer.parseInt(obj.toString());
            }
        }
    }

    /**
     * 1. MethodName	: getLong
     * 2. ClassName		: UtilHelper
     * 3. Commnet		:
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 23. 오후 4:17:05
     * @return long
     * @param s
     * @return
     */
    public static long getLong(String s)
    {
        long l = 0L;
        if(s == null || s.equals(""))
            return -1L;
        try
        {
            l = Long.parseLong(s);
        }
        catch(Exception exception)
        {
            //System.out.println(exception);
        }
        return l;
    }

    /**
     * 1. MethodName	: getString
     * 2. ClassName		: UtilHelper
     * 3. Commnet		: 문자열으로 변환, Null이거나 ""이면 기본값 세팅
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 8. 오전 10:34:09
     * @return String
     * @param obj
     * @param defStr
     * @return
     */
    public static String getString(Object obj, String defStr){
        if(obj == null || obj.toString().equals("")) {
            return defStr;
        } else {
            if ("".equals(obj.toString())){
                return defStr;
            } else {
                return obj.toString();
            }
        }
    }

    /**
     * 1. MethodName	: getBoolean
     * 2. ClassName		: UtilHelper
     * 3. Commnet		:
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 16. 오후 12:36:56
     * @return Boolean
     * @param bool
     * @param defBool
     * @return
     */
    public Boolean getBoolean(Boolean bool, Boolean defBool){
        if(bool == null || bool.toString().equals("")) {
            return defBool;
        } else {
            if ("".equals(bool.toString())){
                return defBool;
            } else {
                return bool;
            }
        }
    }


    /**
     * 1. MethodName	: getBoolean
     * 2. ClassName		: UtilHelper
     * 3. Commnet		:
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 23. 오후 4:18:25
     * @return Boolean
     * @param s
     * @return
     */
    public Boolean getBoolean(String s){
        return "TRUE".equalsIgnoreCase(s);
    }
    /**
     * 1. MethodName	: getSelected
     * 2. ClassName		: UtilHelper
     * 3. Commnet		: SelectBox Selected
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 8. 오후 1:24:31
     * @return String
     * @param s
     * @param word
     * @return
     */
    public static String getSelected(String s,String word) {
        return s.equals(word) ? "selected" : "";
    }

    /**
     * 1. MethodName	: getSelected
     * 2. ClassName		: UtilHelper
     * 3. Commnet		: SelectBox Selected
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 8. 오후 1:24:34
     * @return String
     * @param s
     * @param w
     * @return
     */
    public static String getSelected(int s,int w) {
        return (s == w) ? "selected" : "";
    }

    /**
     * 1. MethodName	: getChecked
     * 2. ClassName		: UtilHelper
     * 3. Commnet		: CheckBox, Radio Checked
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 8. 오후 1:25:07
     * @return String
     * @param s
     * @param word
     * @return
     */
    public static String getChecked(String s,String word) {
        return s.equals(word) ? "checked" : "";
    }

    /**
     * 1. MethodName	: getChecked
     * 2. ClassName		: UtilHelper
     * 3. Commnet		: CheckBox, Radio Checked
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 8. 오후 1:25:09
     * @return String
     * @param s
     * @param w
     * @return
     */
    public static String getChecked(int s,int w) {
        return (s==w)? "checked" : "";
    }


    /**
     * 1. MethodName	: nullCheck
     * 2. ClassName		: UtilHelper
     * 3. Commnet		:
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 14. 오후 3:50:39
     * @return boolean
     * @param obj
     * @return
     */
    public boolean nullCheck(Object obj) {
        boolean nullStatus = false;
        if(obj == null) {
             nullStatus = true;
        }
        else {
            nullStatus = false;
        }

        return nullStatus;
    }

    /**
     * 1. MethodName	: nullCheck
     * 2. ClassName		: UtilHelper
     * 3. 작성자			: 김선국
     * 4. 작성일			: 2013. 4. 3. 오전 9:50:27
     * 5. Comment		: String null check default value
     * @param param
     * @return String
     * @param strVal
     * @param retVal
     * @return
     */
	public static String nullCheck(String strVal, String retVal) {
		return strVal != null && !"".equals(strVal) && !"null".equals(strVal) && !"NaN".equals(strVal) ? strVal : retVal;
	}
	
	/**
     * 1. MethodName	: nullCheck
     * 2. ClassName		: UtilHelper
     * 3. 작성자			: 김선국
     * 4. 작성일			: 2013. 4. 3. 오전 9:50:27
     * 5. Comment		: String null check default value
     * @param param
     * @return String
     * @param strVal
     * @param retVal
     * @return
     */
	public static String nullCheckObj(Object objVal, String retVal) {
		return objVal != null && !"".equals(objVal) && !"null".equals(objVal) && !"NaN".equals(objVal) ? objVal+"" : retVal;
	}

    /**
     * 1. MethodName	: URLEncode
     * 2. ClassName		: UtilHelper
     * 3. Commnet		:
     * 4. 작성자			: yongchoen,Shin
     * 5. 작성일			: 2013. 1. 16. 오후 12:37:10
     * @return String
     * @param url
     * @return
     */
    public static String URLEncode(String url) {
        return url == null ? null : URLEncoder.encode(url); //, getLocale());
    }

    public String nl2br(String str){
        str = str.replaceAll("\r\n", "<br/>");
        str = str.replaceAll("\r", "<br/>");
        str = str.replaceAll("\n", "<br/>");
        return str;
    }



   /* public String getBoardCateSelected(String cate){

        List itemList = this.getBoardCateList();
        String B_CATEGORY = "";
        String B_CATEGORY_NAME = "";
        for(int i=0;i<itemList.size();i++){
            LinkedHashMap<String, Object> map = (LinkedHashMap<String, Object>) itemList.get(i);
            B_CATEGORY = (String) map.get("B_CATEGORY");
            B_CATEGORY_NAME = (String) map.get("B_CATEGORY");

        }

        return returnList;
    }
*/


}
